package si.yun.service;

import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @ClassName: 微圈分类Service层接口
 * @Description: TODO
 * @Author: 李振海
 * @Date 2021/10/18 10:08
 */
public interface MicroCircleService {
    //获取微圈分类数据
    List<Map<String, Object>> selForumClass();

    //通过微圈id获取微圈详情页面的具体信息
    Map<String, Object> selMicrocircleDetails(Integer id);

    //通过微圈id获取该微圈下相对应的评论
    List<Map<String, Object>> selCommentData(Integer id);

    //对当前微圈进行评论
    int addComment(Map<String, Object> map);

    //判断当前登录的用户是否已经收藏查看的微圈
    Map<String, Object> selCollection(Map<String, Object> map);

    //当前登录用户收藏此条微圈
    int addCollection(Map<String, Object> map);

    //当前登录用户取消收藏此条微圈
    int DelCancelCollection(Map<String, Object> map);

    //当前登录用户取消点赞此条微圈
    int DelFabulous(Map<String, Object> map);

    //当前登录用户点赞此条微圈
    int addFabulous(Map<String, Object> map);

    //获取该微圈分类下相关的推荐
    List<Map<String, Object>> selRecommend(Integer id);

    //获取微圈分类数据（微圈分类id，微圈分类名称）
    List<String> selReleaseMicroClassData();

    //发布微圈(className微圈名称,microData微圈内容,userId用户id,title标题)
    int addReleaseMicroData(Map<String, Object> map);

    //通过微圈id获取微圈内容
    List<Map<String, Object>> selMicrocircleDetailsList(@Param("id") int id);

    //将搜索内容去和搜索关键字进行匹配，如果相匹配搜索关键字表的搜索次数加1
    int selEsData(String content);

    //获取热门搜索记录
    List<Map<String, Object>> selPopularSearch();

    //修改微圈
    int updReleaseMicroData(Map<String, Object> map);

    //微圈分享+1
    Integer addMicroCircleSharing(Integer id);

    // 删除个人评论 更改状态为删除
    Integer updCommentStatusDelwq(Integer commentId, Integer userId, Integer commodityId);

    //评论点赞
    Integer addDetailsLike(Integer commentId);
}
